<?php
/**
 * 功能：SlimException 是 SlimPHP 所有异常的基础类
 * 说明：
 * 创建日期：2012-03-20
 * 更新日期：
 * 作者：Mirze
 * 补充说明： 
 * 
 */
class SlimException extends Exception
{
	/**
     * (功能描述) 构造函数
     *
     * @param string $message 错误消息
     * @param int $code 错误代码
     */
	function __construct($message, $code = 0)
	{
		parent::__construct($message, $code);
	}

	/**
	 * (功能描述) 输出异常的详细信息和调用堆栈
	 *
	 * @code php
     * SlimException::dump($ex);
     * @endcode
	 */
    static function dump(Exception $ex)
    {
        $out = "exception '" . get_class($ex) . "'";
        if ($ex->getMessage() != '')
        {
            $out .= " with message '" . $ex->getMessage() . "'";
        }

        $out .= ' in ' . $ex->getFile() . ':' . $ex->getLine() . "\n\n";
        $out .= $ex->getTraceAsString();

        if (ini_get('html_errors'))
        {
            echo nl2br(htmlspecialchars($out));
        }
        else
        {
            echo $out;
        }
    }

}

?>